/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.isfd.domain.bo;

import com.comac.ins.common.core.validate.AddGroup;
import com.comac.ins.common.core.validate.EditGroup;
import com.comac.ins.common.mybatis.core.domain.BaseEntity;
import com.comac.ins.isfd.domain.IsfdDatabaseDataImportRecord;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

/**
 * 数据导入记录业务对象 isfd_database_data_import_record
 *
 * @author Lion Li
 * @date 2024-12-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = IsfdDatabaseDataImportRecord.class, reverseConvertGenerate = false)
public class IsfdDatabaseDataImportRecordBo extends BaseEntity {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 模型名称
     */
    @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelName;

    /**
     * 业务场景
     */
    @NotBlank(message = "业务场景不能为空", groups = { AddGroup.class, EditGroup.class })
    private String businessScenario;

    /**
     * 业务系统
     */
    @NotBlank(message = "业务系统不能为空", groups = { AddGroup.class, EditGroup.class })
    private String businessSystem;

    /**
     * 要素库类型
     */
    @NotBlank(message = "要素库类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String databaseType;

    /**
     * 子类型
     */
    @NotBlank(message = "子类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String databaseSubtype;

    /**
     * 表名
     */
    @NotBlank(message = "表名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tableName;

    /**
     * 数据质量ID
     */
    @NotNull(message = "数据质量ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dataQualityId;

    /**
     * 数据转换ID
     */
    @NotNull(message = "数据转换ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dataConversionId;

    /**
     * 模板ID
     */
    @NotNull(message = "模板ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dataTemplateId;

    /**
     * 模板名称
     */
    @NotBlank(message = "模板名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataTemplateName;

    /**
     * 数据量
     */
    @NotNull(message = "数据量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer dataQuantity;

    /**
     * 导入方式
     */
    @NotBlank(message = "导入方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String importMethod;

    /**
     * 数据形式
     */
    @NotBlank(message = "数据形式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataForm;

    /**
     * 原始文件URL
     */
    @NotBlank(message = "原始文件URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataFileUrl;

    /**
     * 数据导入时间
     */
    @NotNull(message = "数据导入时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date dataImportTime;

    /**
     * 数据导入者
     */
    @NotBlank(message = "数据导入者不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataImportBy;

    /**
     * 数据来源
     */
    @NotBlank(message = "数据来源不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataSource;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String comment;

    /**
     * 删除标志；0：存在，1：已删除
     */
    @NotNull(message = "删除标志；0：存在，1：已删除不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long isDelete;


}
